<?php
/***************************************************************************
 * Ces fonctions retourne un id. Soit un id sélectionné à partir
 * d'un enregistrement, soit (si pas d'id trouvé) à partir d'une insertion.
 ***************************************************************************/

function select_id_coordonnee($pdo, $tel1, $tel2, $fax, $mail, $portable){
	$args=array(
		'telephone1' => $tel1,
		'telephone2' => $tel2,
		'fax' => $fax,
		'mail' => $mail,
		'portable' => $portable
	);
	$req_s = $pdo->prepare('SELECT id_coordonnee FROM coordonnee
	WHERE telephone1=:telephone1 AND telephone2=:telephone2 AND fax=:fax AND mail=:mail and portable=:portable');
	$req_s->execute($args);
	$coordonnees=$req_s->fetch();
	if(!isset($coordonnees['id_coordonnee'])){
		$req_i = $pdo->prepare('INSERT INTO coordonnee(telephone1, telephone2, fax, mail, portable)
		VALUES(:telephone1, :telephone2, :fax, :mail, :portable)');
		$req_i->execute($args);
		$id = $pdo->lastInsertId();
	}else
		$id = $coordonnees['id_coordonnee'];
	return $id;
}

function select_id_joignabilite($pdo, $tel_journee, $tel_soiree, $tel_we, $port_journee, $port_soiree, $port_we, $autre_journee, $autre_soiree, $autre_we){
	//$telephone = array(isset($tel_journee)?'journee':'', isset($tel_soiree)?'soiree':'', isset($tel_we)?'week-end':''); 
	//$portable = array(isset($port_journee)?'journee':'', isset($port_soiree)?'soiree':'', isset($port_we)?'week-end':'');
	//$autre = array(isset($autre_journee)?'journee':'', isset($autre_soiree)?'soiree':'', isset($autre_we)?'week-end':'');
	//echo $telephone."<br/>".$portable."<br/>".$autre;
	$args=array(
		'joignabilite_telephone' => ''.$tel_journee.$tel_soiree.$tel_we,
		'joignabilite_portable' => ''.$port_journee.$port_soiree.$port_we,
		'joignabilite_autre' => ''.$autre_journee.$autre_soiree.$autre_we
	);
	$req_s = $pdo->prepare('SELECT id_joignabilite FROM anim_joignabilite
	WHERE joignabilite_telephone=:joignabilite_telephone AND joignabilite_portable=:joignabilite_portable
	AND joignabilite_autre=:joignabilite_autre');
	$req_s->execute($args);
	$result=$req_s->fetch();
	if(!isset($coordonnees['id_joignabilite'])){
		$req_i = $pdo->prepare('INSERT INTO anim_joignabilite(joignabilite_telephone, joignabilite_portable, joignabilite_autre)
		VALUES(:joignabilite_telephone, :joignabilite_portable, :joignabilite_autre)');
		$req_i->execute($args);
		$id = $pdo->lastInsertId();
	}else
		$id = $result['id_joignabilite'];
	return $id;
}


function select_id_adresse($pdo, $rue, $code_postal, $ville){
	$args = array(	
		'rue' => $rue,
		'code_postal' => $code_postal,
		'id_ville' => select_id_ville($pdo, $ville)
	);
	$req_s = $pdo->prepare('SELECT id_adresse FROM adresse WHERE rue=:rue 
	AND code_postal=:code_postal AND id_ville=:id_ville');
	$req_s->execute($args);
	$adresses=$req_s->fetch();
	if(!isset($adresses['id_adresse'])){
		$req_i = $pdo->prepare('INSERT INTO adresse(rue, code_postal, id_ville) VALUES(:rue, :code_postal, :id_ville)');
		$req_i->execute($args);
		$id = $pdo->lastInsertId();
	}else
		$id = $adresses['id_adresse'];
	return $id;
}

/* Sélection de l'id d'une ville.
 * Insertion si l'id n'est pas trouvé
 * */
function select_id_ville($pdo, $ville){
	$args = array(
		'ville' => $ville
	);
	$req_s = $pdo->prepare('SELECT id_ville FROM ville WHERE ville=:ville');
	$req_s->execute($args);
	$villes=$req_s->fetch();
	if(!isset($villes['id_ville'])){
		$req_i = $pdo->prepare('INSERT INTO ville(ville) VALUES(:ville)');
		$req_i->execute($args);
		$id = $pdo->lastInsertId();
	}else
		$id = $villes['id_ville'];
	return $id;
}


function select_id_etablissement($pdo, $adresse, $code_postal, $ville, $tel1, $tel2, $fax, $mail, $portable, $nom_etab){
	$req_s = $pdo->prepare('SELECT id_etablissement FROM etablissement
	WHERE nom_etablissement=:nom_etablissement AND id_adresse=:id_adresse
	AND id_coordonnee=:id_coordonnee');	
	$id_adresse_etab = select_id_adresse($pdo, $adresse, $code_postal, $ville);
	$id_coordonnee_etab = select_id_coordonnee($pdo, $tel1, $tel2, $fax, $mail, $portable);
	$req_s->execute(array(
		'nom_etablissement' => $nom_etab,
		'id_adresse' => $id_adresse_etab,
		'id_coordonnee' => $id_coordonnee_etab
	));		
	$etabfreq=$req_s->fetch();
	if (!isset($etab['id_etablissement'])){	// Si la requête de sélection ne retourne rien
		$req_i = $pdo->prepare('INSERT INTO etablissement (nom_etablissement, id_adresse, id_coordonnee)
		VALUES(:nom_etablissement, :id_adresse, :id_coordonnee)');
		$req_i->execute(array(
			'nom_etablissement' => $nom_etab,
			'id_adresse' => $id_adresse_etab,
			'id_coordonnee' => $id_coordonnee_etab
		));
		$id = $pdo->lastInsertId();
	}else
		$id = $etab['id_etablissement'];
	return $id;
}

// Sélection de l'id identite (sans insertion)
function get_id_identite($pdo, $nom, $prenom){
	$req_s = $pdo->prepare('SELECT id_identite FROM identite
	WHERE nom=:nom AND prenom=:prenom');
	$req_s->execute(array(
		'nom' => $nom,
		'prenom' => $prenom
	));
	$identites=$req_s->fetch();
	return $identites['id_identite'];
}

function select_id_identite($pdo, $nom, $nom_jf, $prenom, $sexe, $qualite, $id_adresse){
	$req_s = $pdo->prepare('SELECT id_identite FROM identite
	WHERE nom=:nom AND prenom=:prenom AND sexe=:sexe AND id_adresse=:id_adresse');
	$req_s->execute(array(
		'nom' => $nom,
		'prenom' => $prenom, 
		'sexe' => $sexe,
		'id_adresse' => $id_adresse
	));
	$identites=$req_s->fetch();
	if(!isset($identites['id_identite'])){
		$req_i = $pdo->prepare('INSERT INTO identite(nom, nom_jf, prenom, sexe, qualite, id_adresse) 
		VALUES(:nom, :nom_jf, :prenom, :sexe, :qualite, :id_adresse)'
		);
		$req_i->execute(array(
			'nom' => $nom,
			'nom_jf' => $nom_jf,
			'prenom' => $prenom,
			'sexe' => $sexe,
			'qualite' => $qualite,
			'id_adresse' => $id_adresse
		));
		$id = $pdo->lastInsertId();
	}else
		$id = $identites['id_identite'];
	return $id;
}

function select_id_chauffeur($pdo, $id_identite){
	$args=array(
		'id_identite' => $id_identite
	);
	$req_s = $pdo->prepare('SELECT id_chauffeur FROM chauffeur
	WHERE id_identite=:id_identite');
	$req_s->execute($args);
	$result=$req_s->fetch();
	if(!isset($result['id_chauffeur'])){
		$req_i = $pdo->prepare('INSERT INTO chauffeur(id_identite) 
		VALUES(:id_identite)');
		$req_i->execute($args);
		$id = $pdo->lastInsertId();
	}else
		$id = $result['id_chauffeur'];
	return $id;
}
/*
function insert_commentaire($pdo, $categorie){
$req = $bdd->prepare('INSERT INTO '.$categorie.'_commentaire(commentaire, id_animateur)
VALUES(:commentaire, :id_animateur)');

	for($i=1; isset($_POST['comm_animateur'.$i]); $i++){
		$req->execute(array(
			'commentaire' => $_POST['comm_animateur'.$i],
			'id_'.$categorie => $id_animateur
		));
		//$bdd->closeCursor(); // ???
	}
}
*/

/**fonction pour avoir les coordonnées et adresse d'un établissement***/

function getEtablissement($pdo,$cle){
	
	$sql="SELECT * FROM etablissement INNER JOIN adresse ON adresse.id_adresse=etablissement.id_adresse
										INNER JOIN coordonnee ON etablissement.id_coordonnee=coordonnee.id_coordonnee
										INNER JOIN ville ON adresse.id_ville= ville.id_ville WHERE  etablissement.id_etablissement = $cle"; 
	
	return $pdo->query($sql);
}


/**fonction pour obtenir les donnees d'une table commentaire**/

function getCommentaire($pdo,$cle,$id,$tab_comment){
	
	$sql = "SELECT * FROM $tab_comment WHERE $cle=$id";
	return $pdo->query($sql);
}


?>